﻿using Autodesk.Revit.DB;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CoreDB.Extensions
{
    public static class LevelExtension
    {
        /// <summary>
        /// 检查标高是否是结构标高
        /// </summary>
        /// <param name="level"></param>
        /// <returns></returns>
        public static bool IsStructural(this Level level)
        {
            // 如果标高名字是J_开头，我们认为不是结构标高
            if (level.Name.StartsWith("J_") || level.Name.StartsWith("J-"))
                return false;

            // 如果标高名字是G_开头，我们认为结构标高
            if (level.Name.StartsWith("G_") || level.Name.StartsWith("G-"))
                return true;

            // 通过"结构"参数进行判断
            Parameter _param = level.get_Parameter(BuiltInParameter.LEVEL_IS_STRUCTURAL);
            if (null != _param && _param.StorageType == StorageType.Integer)
                return 1 == _param.AsInteger();

            return false;
        }

        /// <summary>
        /// 获取标高名称中包含的数字
        /// </summary>
        /// <param name="level"></param>
        /// <returns></returns>
        public static int GetNumber(this Level level)
        {
            var num = System.Text.RegularExpressions.Regex.Replace(level.Name, @"[^0-9]+", "");
            if (!string.IsNullOrEmpty(num))
            {
                return int.Parse(num);
            }
            return -1;
        }





    }
}
